// index.js
const ApiConfig = require("../../config/api-config");
const { get } = require("../../utils/request");
Page({
  data: {
      // 扫码结果弹窗相关
      showScanResult: false,
      drugUploadShow: false,
      barcode: '',
      drugInfo:{}
  },
  // 开始扫码
  startScan() {
    this.startWechatScan();
  },
  
  // 微信API扫码
  startWechatScan() {
    wx.scanCode({
      onlyFromCamera: false,
      scanType: ['qrCode', 'barCode', 'datamatrix', 'pdf417'],
      success: (res) => {
        // 微信扫码API返回的res对象包含result属性，直接传递整个res对象给handleScanResult
        // handleScanResult会自动提取res.result作为实际内容
        this.handleScanResult(res);
      },
      fail: (err) => {
        if (err.errMsg && !err.errMsg.includes('cancel')) {
          wx.showModal({
            title: '识别失败',
            content: '无法识别二维码或条形码。请确保图片清晰可见，或尝试选择相册中的图片进行识别。',
            confirmText: '知道了',
            showCancel: false
          });
        }
      },
      complete: () => this.setData({ scanAnimation: false })
    });
  },
  // 输入框
  onInput(e){
    this.data.barcode = e.detail.value
  },

  // 搜索
  onSearch(){
    const content = this.data.barcode
    if(content.length !== 20 && content[0]!=='8'){
      wx.showModal({
        title: '识别失败',
        content: '药品追溯码不合法，请重新扫描',
        confirmText: '知道了',
        showCancel: false
      });
    } else {
      this.getDrugInfo(content)
    }
  },
  // 处理扫码结果
  handleScanResult(result) {
    const content = typeof result === 'string' ? result : result.result;
    if(content.length !== 20 && content[0]!=='8'){
      wx.showModal({
        title: '识别失败',
        content: '药品追溯码不合法，请重新输入',
        confirmText: '知道了',
        showCancel: false
      });
    } else {
      // 使用统一的结果弹窗组件显示
      this.getDrugInfo(content)
    }
  },

   // 调用查询接口
   async getDrugInfo(code) {
    try {
      const url = ApiConfig.server.baseUrl + ApiConfig.endpoints.getDrugInfo;
      const res = await get(url, { code }); 
      if(res.data){
        this.showScanResultModal(res.data);
      }else{
        wx.showModal({
          title: '未获取到药品',
          content: '请重新扫描输入，或手动上报',
          confirmText: '知道了',
          showCancel: false
        });
      }
    } catch (err) {
      console.error('查询失败:', err);
      this.data.drugInfo = {}
      wx.showToast({ title: '查询失败', icon: 'none' });
    }
  },

  // 显示扫码结果弹窗（统一入口）
  showScanResultModal(drugInfo) {
    console.log(drugInfo)
      // 显示统一结果弹窗
    this.setData({
      showScanResult: true,
      drugInfo: drugInfo
    });
  },
     // 隐藏相册扫码结果弹窗
  hideScanResult() {
    this.setData({
      showScanResult: false,
      drugInfo: {}
    });
  },

  // 展示药品上传弹窗
  showDrugUpload(){
    this.setData({drugUploadShow:true})
    console.log(this.data.drugUploadShow)
  },

  // 隐藏药品上传弹窗
  hideDrugUpload(){
    this.setData({drugUploadShow:false})
  },

  // 跳转到药品列表
  gotoDrugList(){
    wx.navigateTo({
      url: '/pages/drug-list/drug-list',
    })
  },
})
